/*
13.1
拷贝构造函数是什么？什么时候使用它？
*/

拷贝构造函数定义了当用同类型的另一个对象初始化本对象时做什么。
其第一个参数为自身类类型的引用，且额外参数都有默认值。

Foo (const Foo&);

在拷贝初始化的时候我们会用到它。
- 将一个对象作为实参传递给一个非引用类型的形参
- 从一个返回类型为非引用的函数中返回一个对象
- 用花括号，列表初始化一个数组中的元素或一个聚合类中的成员